home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / rng.exe / RAN.H < prev    next >
C/C++ Source or Header  |  1991-12-19  |  1KB  |  55 lines

  1. /* ran.h - define constants, data types, and files used in random number
  2. ** generator
  3. **
  4. ** Author:  Kent E. Holsinger
  5. **
  6. ** Revision history
  7. ** ----------------
  8. **
  9. ** Version 1.0 -- 24 January 1990
  10. ** Original version of Knuth additive random number generator
  11. **
  12. ** Version 1.1 -- 24 January 1990
  13. ** ran() changed to macro operating on long
  14. **
  15. ** Version 2.1 -- 31 December 1990
  16. ** Added Marsaglia generator with conditional compilation
  17. **
  18. ** Version 2.3
  19. ** Converted both generators to return unsigned long
  20. **
  21. */
  22.  
  23. #define RAN_MAR      /* either RAN_MAR or RAN_KNU must be defined here */
  24. /* #define RAN_KNU   /* either RAN_MAR or RAN_KNU must be defined here */
  25.  
  26.  
  27.                            /* CONSTANT AND MACRO DEFINITIONS */
  28. #ifdef RAN_KNU
  29. #define NO_NUMBERS   0xffffffff
  30. #define CONV_REAL 4294967296.0
  31. #define RND_BITS  32
  32. #define RND_BITMSK   0xffffffff
  33. #endif
  34. #ifdef RAN_MAR
  35. #define NO_NUMBERS   16777216
  36. #define CONV_REAL 16777216.0
  37. #define RND_BITS  24
  38. #define RND_BITMSK   0x00ffffff
  39. #endif
  40. #define ran()     ((double)irand()/CONV_REAL)
  41.  
  42.                            /* FUNCTION PROTOTYPES */
  43. #ifdef __STDC__
  44. void setup(unsigned long *seed);
  45. unsigned long irand(void);
  46. int poiss(double mean);
  47. int binom(int n, double p);
  48. #else
  49. void setup();
  50. unsigned long irand();
  51. int poiss();
  52. int binom();
  53. #endif
  54.  
  55.